package com.kexio.config.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kexio.common.entity.BaseEntity;

/**
 * 字典数据实体
 * 
 * @author Kexio Team
 * @since 1.0.0
 */
@TableName("sys_dict_data")
public class DictData extends BaseEntity {
    
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;
    
    /**
     * 字典类型
     */
    @TableField("dict_type")
    private String dictType;
    
    /**
     * 字典标签 (显示名称)
     */
    @TableField("dict_label")
    private String dictLabel;
    
    /**
     * 字典值 (实际值)
     */
    @TableField("dict_value")
    private String dictValue;
    
    /**
     * 字典排序
     */
    @TableField("dict_sort")
    private Integer dictSort;
    
    /**
     * 状态 (active, inactive)
     */
    @TableField("status")
    private String status;
    
    /**
     * 样式属性 (CSS类名)
     */
    @TableField("css_class")
    private String cssClass;
    
    /**
     * 表格回显样式
     */
    @TableField("list_class")
    private String listClass;
    
    /**
     * 是否默认 (默认选中)
     */
    @TableField("is_default")
    private Boolean isDefault;
    
    /**
     * 父级字典值 (支持层级结构)
     */
    @TableField("parent_value")
    private String parentValue;
    
    /**
     * 扩展属性1
     */
    @TableField("extra1")
    private String extra1;
    
    /**
     * 扩展属性2
     */
    @TableField("extra2")
    private String extra2;
    
    /**
     * 扩展属性3
     */
    @TableField("extra3")
    private String extra3;
    
    /**
     * 字典描述
     */
    @TableField("description")
    private String description;
    
    // Constructors
    public DictData() {}
    
    public DictData(String dictType, String dictLabel, String dictValue, Integer dictSort) {
        this.dictType = dictType;
        this.dictLabel = dictLabel;
        this.dictValue = dictValue;
        this.dictSort = dictSort;
        this.status = "active";
        this.isDefault = false;
    }
    
    // Getters and Setters
    public String getId() { return id; }
    public void setId(String id) { this.id = id; }
    
    public String getDictType() { return dictType; }
    public void setDictType(String dictType) { this.dictType = dictType; }
    
    public String getDictLabel() { return dictLabel; }
    public void setDictLabel(String dictLabel) { this.dictLabel = dictLabel; }
    
    public String getDictValue() { return dictValue; }
    public void setDictValue(String dictValue) { this.dictValue = dictValue; }
    
    public Integer getDictSort() { return dictSort; }
    public void setDictSort(Integer dictSort) { this.dictSort = dictSort; }
    
    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
    
    public String getCssClass() { return cssClass; }
    public void setCssClass(String cssClass) { this.cssClass = cssClass; }
    
    public String getListClass() { return listClass; }
    public void setListClass(String listClass) { this.listClass = listClass; }
    
    public Boolean getIsDefault() { return isDefault; }
    public void setIsDefault(Boolean isDefault) { this.isDefault = isDefault; }
    
    public String getParentValue() { return parentValue; }
    public void setParentValue(String parentValue) { this.parentValue = parentValue; }
    
    public String getExtra1() { return extra1; }
    public void setExtra1(String extra1) { this.extra1 = extra1; }
    
    public String getExtra2() { return extra2; }
    public void setExtra2(String extra2) { this.extra2 = extra2; }
    
    public String getExtra3() { return extra3; }
    public void setExtra3(String extra3) { this.extra3 = extra3; }
    
    public String getDescription() { return description; }
    public void setDescription(String description) { this.description = description; }
}
